﻿using Microsoft.AspNetCore.Mvc;
using System;
using System.Collections.Generic;
using System.Text;
using System.Threading.Tasks;
using Volo.Abp.Application.Dtos;
using Volo.Abp.Application.Services;

namespace AbpDemo
{
    public interface ICrudAppExtService<TEntityDto, TKey, TCreateUpdateDto>:IApplicationService
    {
        /// <summary>
        /// 添加
        /// </summary>
        /// <param name="entity"></param>
        /// <returns></returns>
        Task<ResultDto<TEntityDto>> CreateAsync(TCreateUpdateDto createInput);
        /// <summary>
        /// 修改
        /// </summary>
        /// <param name="entity"></param>
        /// <returns></returns>
        Task<ResultDto<TEntityDto>> UpdateAsync(TKey Id, TCreateUpdateDto createInput);
        /// <summary>
        /// 删除
        /// </summary>
        /// <param name="Id"></param>
        /// <returns></returns>
        Task<ResultDto<bool>> DeleteAsync(TKey Id);
        /// <summary>
        /// 获取
        /// </summary>
        /// <param name="Id"></param>
        /// <returns></returns>
        Task<ResultDto<TEntityDto>> GetAsync(TKey Id);
        /// <summary>
        /// 分页
        /// </summary>
        /// <param name="getListInput"></param>
        /// <returns></returns>
        //Task<ResultDto<PagedResultDto<TEntityDto>>> GetPageAsync([FromQuery] PageDto pageDto);
    }
}
